11063. Урок математики

 

Сегодня Крош узнал про среднее геометрическое чисел. Среднее геометрическое двух положительных чисел x и y равно . Обозначим среднее геометрическое чисел x и y как g(x, y).

У Кроша было три положительных вещественных числа a, b и c. Он использовал их, чтобы попрактиковаться в вычислении средних геометрических. Он вычислил и записал числа g(ab), g(ac) и g(b, c).

Спустя некоторое время, Крош увидел записанные значения средних геометрических. И теперь он хочет вспомнить, какие числа ab и c у него были. Помогите ему найти любые подходящие положительные числа ab и c.

 

Вход. В первой строке дано значение среднего геометрического чисел a и b, иными словами – g(a, b). Во второй строке дано число g(ac). В третьей строке дано число g(b, c).

Все три числа являются вещественными, положительными, не превышают 109 и содержат не более 6 цифр после запятой.

 

Выход. Выведите любые подходящие положительные числа a, b и c. Жюри вычислит средние геометрические выведенных вами чисел. Ответ будет считаться правильным, если абсолютная или относительная погрешность каждого из средних не будет превышать 10-6.

Можно доказать, что при любых входных данных, удовлетворяющих ограничениям, решение существует.

 

Пример входа 1

Пример выхода 1

12

20

15

16.000000000000000

9.000000000000000

25.000000000000000

 

 

Пример входа 2

Пример выхода 2

1.234567

2.345678

3.456789

0.837741803571465

1.819362088642601

6.567901060000794

 

 

РЕШЕНИЕ

математика

 

Анализ алгоритма

Пусть x = g(ab) = , y = g(ac) =  и z = g(b, c) = .

Перемножив эти три значения, получим: xyz = abc. Отсюда

, ,

Эту тройку чисел (a, b, c) и выводим.

 

Пример

В первом примере x = 12, y = 20, z = 15. Вычисляем исходную тройку чисел:

, ,

 

Реализация алгоритма

Читаем входные данные.

 

scanf("%lf %lf %lf", &x, &y, &z);

 

Вычисляем результирующие ab и c.

 

a = x * y / z;

b = x * z / y;

c = y * z / x;

 

Выводим ответ.

 

printf("%lf\n%lf\n%lf\n", a, b, c);